草庐IT

haskell - 新线 haskell

全部标签

windows - 在 Windows 中使用 GHCI 的 Haskell 外部函数接口(interface)

首先,我指定我使用Windows1064位和HaskellPlatform8.0.1。我尝试使用以下代码在Windows中使用Haskell的FFI。importControl.MonadimportData.CharimportForeign.CgetCh::IOChargetCh=liftM(chr.fromEnum)c_getchforeignimportccallunsafe"conio.hgetch"c_getch::IOCIntmain::IO()main=getCh>>=\x->printx在这之后,我可以用ghc编译好>ghcExamples.hs[1of1]Compi

windows - 在 Windows 上安装 Haskell,cabal 配置

我正在根据https://www.haskell.org/platform/中的说明在Windows上安装Haskell并查看第3步,它说,修改您的cabal配置文件(您可以通过运行“cabaluser-configinit”来验证位置)以包含以下行:extra-prog-path:C:\ProgramFiles\HaskellPlatform\8.0.2\msys\usr\binextra-lib-dirs:C:\ProgramFiles\HaskellPlatform\8.0.2\mingw\libextra-include-dirs:C:\ProgramFiles\Haskell

windows - 如何从 Haskell 锁定 Windows 上的文件?

我正在将一个程序移植到使用POSIXfcntl锁定(setLock、getLock、waitToSetLock)的Windows。我看不到在GHC的库或Hackage上找到任何适用于Windows的锁定内容。有什么事吗? 最佳答案 我在运行IdrisREPL时遇到了相反的问题,在Windows上,文件在被标准HaskellI/O函数打开时总是被锁定,所以在REPL中打开的文件不能被编辑器打开同时。因此,如果您不需要锁定已关闭的文件,您的问题可能已经解决。 关于windows-如何从Has

windows - 我可以从 Windows 上的 ghc Haskell 进程转储中收集哪些信息?

我的命令行应用程序的一位用户报告说出现了一个无限循环。当进程处于这种状态时,他们很有帮助地转储了进程(通过任务管理器)并将其发送给我。我不确定如何从这个转储中获取有用的信息。我的windbg-zthe-dump-file.dmp-yreleases\v5.0.0-ireleases\v5.0.0的常规技术没有提供太多我知道如何解释的信息。我可以改用特定于ghc的工具吗?下一步,我应该在发布过程中添加构建选项还是我应该做的其他事情,以使这种事后调试更有成效?这是我看到的堆栈示例。没有太多有用的信息,特别是对于习惯在WinDbg中调试C/C++代码的人来说。:-)0Id:112dc.cc1

windows - 如何在 Windows 上使用 freeglut 制作 Haskell GLUT?

如何使用freeglut而不是Windows上的原始GLUT来绑定(bind)HaskellGLUT? 最佳答案 Ifindaeasywaydoingthis.JustcleanoutalltheoriginalGLUTlibstuffanddownloadaprecompiledfreeglut.dllandchangeittoglut32.dllandsavetoC:\WINDOWS\system32.EricWong 关于windows-如何在Windows上使用freeglut制

c# - Task.Delay 是否启动一个新线程?

下面的代码应该(至少在我看来)创建100个Tasks,它们都在并行等待(这就是并发的意义,对吧:D?)并且几乎同时完成.我想对于每个Task.Delay,都会在内部创建一个Timer对象。publicstaticasyncTaskMainAsync(){vartasks=newList();for(vari=0;ifunc=async()=>{awaitTask.Delay(1000);Console.WriteLine("Instant");};tasks.Add(func());}awaitTask.WhenAll(tasks);}publicstaticvoidMain(stri

c# - Task.WhenAll() - 它会创建一个新线程吗?

根据MSDN:Createsataskthatwillcompletewhenallofthesuppliedtaskshavecompleted.当调用Task.WhenAll()时,它会创建一个任务,但这是否一定意味着它会创建一个新线程来执行该任务?例如,下面这个控制台应用程序中创建了多少个线程?classProgram{staticvoidMain(string[]args){RunAsync();Console.ReadKey();}publicstaticasyncTaskRunAsync(){Stopwatchsw=newStopwatch();sw.Start();Tas

c# - 计时器是否创建新线程?

timer.Interval=5000;timer.Tick+=newEventHandler(timer_Tick);timer.Start();“timer_Tick”方法是在新线程中启动还是仍在创建它的线程中? 最佳答案 不,计时器在创建它的线程中运行。我假设你在谈论System.Windows.Forms.Timer这是使用线程消息循环实现的。WinForms计时器的底层是Win32APISetTimer()它通过将WM_TIMER消息发送到SetTimer()线程的消息队列来操作。这样做的后果之一是,如果您的事件处理程序花

c# - 如何在新线程上打开一个窗口?

我有一个选项窗口和一个根据这些选项和Kinect数据显示颜色的窗口。到目前为止,一切都在一个线程上(据我所知;我还没有进行任何线程化)。现在,我添加了一个选项来打开一个查看器窗口,该窗口需要以尽可能低的延迟进行更新。所有这一切都需要创建一个窗口并显示它:viewer=newSkeletalViewer.MainWindow();viewer.Show();当此事件触发时,颜色窗口停止显示颜色(即在主线程上每秒触发30次的事件停止触发),但查看器显示完美。我希望同时更新查看器和颜色窗口。从阅读其他问题来看,解决方案听起来像是在新线程上创建查看器。不过,我在这方面遇到了很多问题。当我点击按

c# - Haskell 相当于 C# 5 async/await

我刚刚阅读了有关使用await在C#5.0中处理异步函数的新方法。和async关键字。来自C#referenceonawait的示例:privateasyncTaskSumPageSizesAsync(){//TousetheHttpClienttypeindesktopapps,youmustincludeausingdirectiveandadda//referencefortheSystem.Net.Httpnamespace.HttpClientclient=newHttpClient();//...TaskgetContentsTask=client.GetByteArray